
/**
* @Title: BadSuspend.java
* @Package com.leetone
* @Description: 【】
* @date 2018年3月7日 上午11:47:02
* @version V1.0
* @Company: 上海
* @author:[谭磊][leetone123@163.com]
*/

package com.leetone.simple;


/**
* @ClassName: BadSuspend
* @Description: 【演示已被废弃的suspend和resume方法，官网已不推荐使用】
* @date 2018年3月7日 上午11:47:02
* @Company: 上海
* @author:[谭磊][leetone123@163.com]
*/

public class BadSuspend {
	public static Object u = new Object();//共享资源，临界资源
	static ChangeObjectThread t1 = new ChangeObjectThread("t1");
	static ChangeObjectThread t2 = new ChangeObjectThread("t2");
	
	public static class ChangeObjectThread extends Thread{
		public ChangeObjectThread(String name) 
		{
			super.setName(name);
		}
		@Override
		public void run() {
			//锁住共享资源
			synchronized(u)
			{
				System.out.println("now is "+getName());
				Thread.currentThread().suspend();
			}
		}
	}
	/**
	 * @throws InterruptedException 
	* @Title: main
	* @Description: 【】
	* @date 2018年3月7日 上午11:47:03
	* @author:[谭磊][leetone123@163.com]
	* @param @param args    参数
	* @return void    返回类型
	* @throws
	*/

	public static void main(String[] args) throws InterruptedException {
		//如此执行后t2将会永远被冻结，而且还是处于Runable状态
		t1.start();
		Thread.sleep(100);
		t2.start();
		t1.resume();
		t2.resume();
		t1.join();
		t2.join();
	}

}
